package com.dpteam.dao;

import com.dpteam.model.User;
import com.dpteam.util.Page;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: luolei
 * Date: 2016/1/7
 * Time: 16:44
 */
public interface UserDao extends BaseDao<User> {

    /**
     * 通过名字查找用户
     * @param name
     * @return
     */
    User findByName(String name);

    /**
     * 通过邮箱查询用户
     * @param email
     * @return
     */
    User findByEmail(String email);

    /**
     * 账号查询用户
     * @param account
     * @return
     */
    User findByAccount(String account);

    /**
     * 通过身份证号，查询用户
     * @param IDCard
     * @return
     */
    User findByIDCard(String IDCard);

    /**
     * 通过手机号查询用户
     * @param phone
     * @return
     */
    User findByPhone(String phone);

    /**
     * 通过性别查询用户列表
     * @param gender
     * @return
     */
    List<User> findByGender(int gender);

    /**
     * 通过性别查询用户列表（分页）
     * @param gender
     * @param page
     * @return
     */
    List<User> findByGenderByPage(int gender, Page page);

    /**
     * 通过角色ID，查询用户列表
     * @param roleId
     * @return
     */
    List<User> findByRoleId(int roleId);

    /**
     * 通过角色ID，查询用户列表（分页）
     * @param roleId
     * @param page
     * @return
     */
    List<User> findByRoleIdByPage(int roleId, Page page);

    /**
     * 查询全部用户
     * @return
     */
    List<User> findAll();

    /**
     * 查询全部用户（分页）
     * @param page
     * @return
     */
    List<User> findAllByPage(Page page);

    /**
     * 通过ID删除用户
     * @param id
     */
    void deleteById(int id);

    void updateUser(int id, String phone, String email, String newPath);

}
